Every day, millions of people visit various websites for learning, reading, sharing, social networking, shopping, blogging, gaming, dating, dining and travel, among others. At the same time, millions of websites are trying to be successful in serving their objectives, whether it is to build an online business, support an offline business, or both. According to NetCraft, there are over 68,000,000 active websites as of March 2009, with over 1,400,000 new websites created every month for the last 15 years. While each website serves its own purpose, together they form part of the foundation of our society today.
The performance of a website directly impacts its success or failure in serving its objective. When a website is slow, users have to spend more time waiting and become less productive. More often, they lose patience, abandon their activities and leave. Further, users are much less likely to come back to slower websites. On the contrary, faster performance results in more pleasant user experience. Users are more productive and are more likely to come back.
The impact of web performance on business success has been demonstrated many times in the real world. The following is a partial list of web performance problems:                Amazon: 100 ms delay caused a 1% drop in revenue.        Google: 400 ms delay caused a 0.59% decrease in search requests per user        Yahoo!: 400 ms delay caused a 5-9% decrease in traffic.        Bing: 2 seconds delay caused a 4.3% drop in revenue per user.        Mozilla made their download page 2.2 seconds faster and was rewarded with an increase of 15.4% in downloads.        Google Maps reduced the file volume by 30% and observed a 30% increase in map requests.        Netflix enabled gzip on the server; simply by this single action pages became 13-25% faster and saved 50% of traffic volume!        Shopzilla succeeded in reducing the loading time from 7 down to 2 seconds, whereby the conversion rate increased by 7-12%, they observed a 25% increase in page requests, they were able to retire 50% of their servers, thus saving energy costs.        AOL observed the number of page views on several websites. While the fastest users requested 7-8 pages, the slowest only viewed 3-4.        
Since the beginning of the web, website owners have been trying to find ways to improve their website performance. First, it is relevant to look at the factors that influence website performance.
The performance of a website is determined by a complex chain of elements along the web application delivery chain, starting from the data center where the website is running to the end user's browser.
When a user requests a web page, the user's browser sends out the request as an HTTP request. The HTTP request is transmitted from the user's computer to the user's last mile connectivity, which can be dial-up, DSL, Cable modern, wifi, cellular, T1, T3, among others, to some local Internet Service Provider (ISP). The request is further transmitted from the local ISP to some other ISP networks according the Internet's routing protocols (BGP). Along the path, there may be firewalls, network gateways, filters, address translations, among others, at each hop that the request passes through. If there is no error, eventually the request reaches the data center where the website is running Inside the data center, an HTTP server processes the request, which may go through a few additional steps such as invoking some middleware logic and database lookups, and eventually produces an HTML document. The HTTP server returns the HTML document in response to the HTTP request. The HMTL document is transmitted as an HTTP response message, traversing a similar network path along the chain, until eventually the HTTP response is received by the user's browser. The browser parses the HTTP response, interprets it and processes it. Once the browser recognizes the HTTP response is an HTML document, it starts to render the HTML document. Along the way of rendering, if the HTML page contains additional resources such as images, JavaScript files, cascade style sheet (CSS) files, media files, among others, the browser issues additional requests for these resources. Each request results in one round trip. It is fairly typical for today's web pages to require over 100 round trips. Eventually all these resources are loaded, the browser fully renders the page and the web page is ready for user interaction.
The various components that impact website performance along the delivery path can be classified into the following categories:                1. Factors related to web content complexity: the size of the HTML page, the number of additional round trip requests required by the page, Javascript files, CSS files, image files, video or other media files, third party widgets on the pages, among others. A more complex webpage may require more browser processing time and may also result in more number of round trips, which can require a longer wait time.        2. Client side factors: these include the browser itself, the speed of the client machine or device, and the performance of browser processing, among others.        3. Network related factors: the last mile connectivity, the network path and number of hops along the path from the client browser to reach a target HTTP server, network congestion conditions, latency, geographic distance, firewall and filtering along the network path, routing algorithms employed by the various hops along the path, network protocols and their efficiency, packet drop rate, among others        4. Server infrastructure related factors: the geographic locations of the HTTP servers, the number of HTTP servers and the performance of each server, the performance of other server side infrastructure required to fulfill HTTP requests, among others        
There are various approaches for optimizing website performance. Different approaches focus on different influence factors. The following lists these approaches:                1. Hire a smart web development team to optimize web content. Big websites typically employ this approach because they have the resources to find and engage the required technical talents. However, such talents are scarce and expensive. Most of the websites neither have the resources or bandwidth to do so. Google.com is a good example. The home page of Google.com, including The HTML code, Javascript, CSS files and images files, is highly optimized for fastest performance. It delivers great results but requires some of the best engineers on the planet to do so.        2. Build server infrastructure by adding more data centers to improve geographic coverage and redundancy or adding more hardware gears to improve the processing capacity, among others. Big websites typically employ many HTTP servers and use load balancing to distribute load to these HTTP servers. Some of them even built multiple data centers located in different geographic regions to reduce the impact of geographic latency. This approach requires not only substantial amount of infrastructure investments, but also requires significant technical talents to operate and manage these infrastructure operations. As a result, most websites that do not have the financial resources as these big websites have only limited options.        3. Use a Content Delivery Network (CDN): Content delivery network (CDN) is a network service that distributes static web assets to the edge of the Internet and serves them from locations that are geographically closer to the end user to improve the performance of webpage loading. There are many CDN services available to choose from, including vendors such as Akamai, LimeLight, Amazon CloudFront, EdgeCast, HighWinds, CDNetworks, ChinaCache, Cotendo, NetDNA/MaxCDN, SimpleCDN, ATT CDN, BigGravity, Advection.NET, Bitorrent, CacheFly, Velocix, Digital Foundation, GridNetworks, Ignite Technologies, Internap, Level 3 Communications, Mirror Image, Move Networks, NaviSite, Pando Networks, PEER1, SoftLayer CDN, Microsoft, Swarmcast, Tata Communications, or Voxel.net, among others. CDN is particularly useful for video streaming or large static asset distribution. To use a CDN service, a website needs to separate the static assets and upload them to the CDN, and then distribute the assets from the CDN. Traditionally CDN services were mostly used by big web properties as they have the required financial and technical resources to do so. Over the recent years, smaller but technically sophisticated websites started to adopt CDN services as well.        4. Use specialized network gears, such as Application Delivery Controller (ADC) and TCP/IP optimization gears. Many networking vendors including Cisco, Citrix, Bluecoat, and F5 Networks provide ADC devices that website owners can purchase and install to improve the performance of HTTP connection processing. These devices typically offer load balancing, caching, connection pooling, or even protocol optimization. These are widely adopted by large commercial websites. They are powerful but expensive, requiring not only significant upfront investment, but also ongoing maintenance and support.        
Another approach is to optimize the client side browser performance. Different browsers have different strength. It is possible to exploit the unique strength of a particular browser to build a higher performing website. In fact, some websites do require a specific browser or browser version in order to perform. However, this is not a suitable approach for most websites because websites rarely have control on the client side user environment.
The current technology landscape for web performance optimization is complex with hundreds of factors involved. Each of the above mentioned approaches addresses only a small portion of these factors. To effectively optimize the performance of a website, significant technical know-how is required. It is a tedious and manual process that requires continued investment in order to yield results. In reality, most websites do not have the technical know-how, or the financial resources, to make such commitments. For these websites that do have the financial resources, they typically have to employ a large technical team, with skills covering both web development and network operations, to continuously evaluate the various techniques, experiment with them, monitor the results and iterate.
In summary, prior art web performance optimization approaches are complex, expensive, highly manual and are only affordable by large web properties. Accordingly, there is a need for a system and a method that addresses the above mentioned limitations in the current web performance optimization solutions.